package com.xqboss.apps.domain.sys;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.xqboss.apps.enums.sys.PopupJumpEnum;
import com.xqboss.apps.enums.sys.SysAnnouncementMsgTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.Column;
import javax.persistence.Id;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 公告消息表
 *
 * @author wangcong
 * @date 2023-08-31
 */
@Data
@ApiModel("公告消息表")
public class SysAnnouncementMsg implements Serializable {

    private static final long serialVersionUID = 1L;


    @TableId
    @Id
    private Long id;

    /**
     * 分类id
     */
    private Long categoryId;

    @ApiModelProperty("公告分类名称")
    @TableField(exist = false)
    private String categoryName;


    /**
     * 消息标题
     */
    @ApiModelProperty("消息标题")
    private String title;

    @ApiModelProperty("简介")
    private String description;

    @ApiModelProperty("图片")
    private String img;

    /**
     * 1文字,2图片
     */
    @ApiModelProperty("1文字,2图片")
    private SysAnnouncementMsgTypeEnum type;

    /**
     * 上架时间
     */
    @ApiModelProperty("上架时间")
    private LocalDateTime saleableTime;

    /**
     * 是否上架 0否,1是
     */
    @ApiModelProperty("是否上架 0否,1是")
    @Column(updatable = false, insertable = false)
    private Boolean saleable;

    /**
     * 消息内容
     */
    @ApiModelProperty("消息内容")
    private String content;

    /**
     * 1app页面,2网页h5链接
     */
    @ApiModelProperty("1app页面,2网页h5链接")
    private PopupJumpEnum jumpType;

    /**
     * 跳转内容
     */
    @ApiModelProperty("跳转内容")
    private String jumpContent;

    @ApiModelProperty("oss存储路径")
    private String ossPath;

    /**
     * 注册开始时间
     */
    @ApiModelProperty("注册开始时间")
    private LocalDateTime registerTimeStart;

    /**
     * 注册结束时间
     */
    @ApiModelProperty("注册结束时间")
    private LocalDateTime registerTimeEnd;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    private LocalDateTime updateTime;

    /**
     * 删除标记
     */
    @TableLogic
    @ApiModelProperty("删除标记")
    private Boolean delFlag;


}